10 PRINT"[147]":POKE53280,0:POKE53281,0 20 PRINTSPC(174)"[169][146][158][169] [156][169][146][169][159] [146]  [146][169]" 30 PRINTSPC(13)"[169][146][129][169] [153][169][146][156][169] [159] [146]  [146][169]" 40 PRINTSPC(13)" [129] [158] [223][146] [153] [156]  [159] [146]" 50 PRINTSPC(13)" [146]  [146] [159] [146]  [223][146]" 60 PRINTSPC(13)"[223][129] [158] [146][169] [159] [146]  [223][146]" 70 PRINTSPC(87)" [146]  [146] [169] [223][146]  [146]" 80 PRINTSPC(9)" [146]  [146]  [146]  [146]" 90 PRINTSPC(9)" [146]  [146] [223] [223][146]  [146]" 100 PRINTSPC(9)" [146]  [146]  [146]  [146]" 110 PRINTSPC(9)" [146]  [146] [223] [146][169]  [146]" 120 PRINTSPC(92)"[154]BY THE COMPUCATS" 130 REM *********************** 140 REM ** C-64 TEST PROGRAM ** 150 REM ** BY THE COMPUCATS ** 160 REM ** ABERDEEN MD 21001 ** 170 REM *********************** 180 REM *** SPRITE POSITION DATA *** 190 DATA 78,80,135,80,193,80,250,80 200 DATA 78,150,135,150,193,150,250,150 210 REM ****** PADDLE ML DATA ******* 220 DATA162,1,120,173,2,220,141,0,193,169,192,141,2,220,169,128,141,0,220 230 DATA160,128,234,136,16,252,173,25,212,157,1,193,173,26,212,157,3,193,173,0 240 DATA220,9,128,141,5,193,169,64,202,16,222,173,0,193,141,2,220,173,1 250 DATA220,141,6,193,88,96 260 REM ****** USER RAM ML DATA ******* 270 DATA169,0,133,251,133,253,169,8,133,252,169,194,133,254,162,152,160,0 280 DATA177,251,145,253,200,208,249,230,252,202,208,244,96 290 REM ****** SET UP ML ROUTINES ******* 300 FORI=0TO15:READA%:NEXT:DIMA(6) 310 FORI=0TO63:READA%:POKE49152+I,A%:NEXT 320 FORI=0TO30:READA%:POKE50176+I,A%:NEXT 330 REM *** TITLE SCREEN *** 340 FORT=1TO3000:NEXT 350 REM ******** MAIN MENU ******** 360 POKE53280,0:POKE53281,0:PRINT"[147]" 370 PRINTTAB(12)"[162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]" 380 PRINTTAB(8)"**** ENTER NUMBER [146]****" 390 PRINTTAB(12)"[162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]" 400 PRINT 410 PRINTTAB(9)"[209] (1) SPRITES" 420 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 430 PRINTTAB(9)"[209] (2) JOYSTICKS" 440 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 450 PRINTTAB(9)"[209] (3) PADDLES" 460 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 470 PRINTTAB(9)"[209] (4) USER RAM" 480 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 490 PRINTTAB(9)"[209] (5) SID (SOUND)" 500 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 510 PRINTTAB(9)"[209] (6) BASIC ROM" 520 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 530 B=0:A$="":FORI=1TO13STEP2:A(B)=I:B=B+1:NEXT 540 PRINT"" 550 R=INT(RND(0)*6+1):B=INT(RND(1)*10+2) 560 PRINTLEFT$(A$,A(R)); 570 POKE646,B:PRINTTAB(9);"[209]":FORT=1TO500:NEXT:GETI$:IFI$<>""THEN590 580 GOTO540 590 I=VAL(I$) 600 IF I<1ORI>6 THEN540 610 ONIGOTO630,1730,2080,2250,990,1240 620 REM ******** SPRITE CHECK ********* 630 POKE53280,0:POKE53281,0:POKE646,14 640 PRINT"[147]" 650 FORX=12288TO12352STEP2:POKEX,255:NEXT 660 FORX=12289TO12351STEP2:POKEX,60:NEXT 670 RESTORE:FORX=0TO7:READX1(X),Y1(X):NEXT 680 SP=53248:POKESP+21,0:POKESP+23,0:POKESP+29,0 690 FORX2=0TO7:POKE2040+X2,192:NEXT 700 FORX3=0TO7:POKE2*X3+SP,X1(X3):POKE2*X3+1+SP,Y1(X3)+20:POKESP+39+X3,X3+1:NEXT 710 POKESP+21,255 720 PRINT"[147]"TAB(8)"1"TAB(15)"2"TAB(22)"3"TAB(29)"4" 730 PRINT""TAB(8)"5"TAB(15)"6"TAB(22)"7"TAB(29)"8" 740 FORN=0TO7:FORXY=19TO1STEP-1:POKESP+N*2+1,Y1(N)+XY:NEXT:NEXT 750 FORX=1TO4:FORN=0TO7:ON X GOSUB780,790,800,810 760 NEXT:NEXT:GOTO820 770 STOP 780 FORXY=1TO20:POKESP+N*2,X1(N)-XY:NEXT:RETURN 790 FORXY=1TO20:POKESP+N*2+1,Y1(N)-XY:NEXT:RETURN 800 FORXY=20 TO 1 STEP-1:POKESP+N*2,X1(N)-XY:NEXT:RETURN 810 FORXY=20TO1STEP-1:POKESP+N*2+1,Y1(N)-XY:NEXT:RETURN 820 FORX=0TO15:FORY=0TO7:POKESP+39+Y,X:NEXT:FORT=1TO400:NEXT:NEXT 830 FORX=0TO7:POKESP+39+X,X+1:NEXT 840 FORN=0TO7:POKESP+23,INT(2^N):FORT=1TO400:NEXT:NEXT:POKESP+23,0 850 FORN=0TO7:POKESP+29,INT(2^N):FORT=1TO400:NEXT:NEXT:POKESP+29,0 860 PRINT" WHICH SPRITE? (1-8 : 0 TO RETURN)" 870 GETA$:IFA$=""THEN870 880 GOSUB930 890 FORX=1TO4:ONXGOSUB780,790,800,810:NEXT 900 GOTO870 910 POKES+21,0:PRINT"[147]":END 920 GETA$:IFA$=""THEN920 930 A=ASC(A$):IFA<48ORA>56THEN920 940 IFA=48THEN970 950 N=VAL(A$)-1 960 RETURN 970 PRINT"[147]":POKESP+21,0:GOTO360 980 REM ******** SID CHECK ********* 990 PRINT"[147]":PRINTSPC(93)"[162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]" 1000 PRINTTAB(10)"*** SID SOUND TEST [146]***" 1010 PRINTTAB(13)"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 1020 FF=1 1030 V=54272:FORL=VTOV+24:POKEL,0:NEXT:FORT=0TO2:K=T*7 1040 POKEV+5+K,88:POKEV+6+K,195:FORWA=1TO4:IFWA=1THENW=17 1050 IFWA=2THENW=33 1060 IFWA=3THENW=65 1070 IFWA=4THENW=129 1080 POKEV+24,15:POKEV+2+K,255:POKEV+4+K,W 1090 PRINT""TAB(12)"[154]VOICE [153]"T+1:PRINTSPC(92)"[154]WAVEFORM: [156]"; 1100 IFWA=1THENPRINT"TRIANGLE " 1110 IFWA=2THENPRINT"SAWTOOTH " 1120 IFWA=3THENPRINT"PULSE " 1130 IFWA=4THENPRINT"WHITE NOISE" 1140 PRINT"":FORHI=1TO255 STEP2 1150 POKEV+1+K,HI:PRINTTAB(12)"[145][154]HIGH BYTE : "HI:NEXT:POKEV+4+K,0 1160 IFT=2ANDWA=4THEN1180 1170 NEXT:NEXT 1180 PRINT"[154] IF YOUR SID IS WORKING" 1190 PRINT" YOU SHOULD HAVE HEARD THE" 1200 PRINT" SOUNDS WITH ALL THREE VOICES." 1210 FORT=1TO5000:NEXT 1220 GOTO360 1230 REM ******** BASIC ROM CHECK ********* 1240 B3=0:PRINT"[147]":PRINTTAB(13)"[159][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]" 1250 PRINTTAB(10)"***[159] BASIC ROM TEST [146]***" 1260 PRINTTAB(13)"[159][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 1270 B1=40960 1280 PRINT"[153]REGISTER BEING TESTED:" 1290 B2=PEEK(B1) 1300 PRINT"[159]";B1 1310 B3=B3+B2 1320 IFB1=41300THEN1430 1330 IFB1=42000THEN1450 1340 IFB1=43000THEN1470 1350 IFB1=44000THEN1490 1360 IFB1=45000THEN1510 1370 IFB1=46000THEN1530 1380 IFB1=47000THEN1550 1390 IFB1=48000THEN1580 1400 IFB1=49151THEN1610 1410 B1=B1+1:GOTO1290 1420 B1=B1+1:GOTO1290 1430 IFB3=43099THENPRINTSPC(46)"[156]PART 1 - OK":GOTO1640 1440 GOTO1660 1450 IFB3=66906THENPRINTSPC(86)"[156]PART 2 - OK":GOTO1640 1460 GOTO1660 1470 IFB3=117669THENPRINTSPC(126)"[156]PART 3 - OK":GOTO1640 1480 GOTO1660 1490 IFB3=114311THENPRINTSPC(166)"[156]PART 4 - OK":GOTO1640 1500 GOTO1660 1510 IFB3=111749THENPRINTSPC(206)"[156]PART 5 - OK":GOTO1640 1520 GOTO1660 1530 IFB3=114547THENPRINTSPC(246)"[156]PART 6 - OK":GOTO1640 1540 GOTO1660 1550 PRINT"" 1560 IFB3=115993THENPRINTTAB(6)"[156]PART 7 - OK":GOTO1640 1570 GOTO1660 1580 PRINT"" 1590 IFB3=114241THENPRINTTAB(6)"[156]PART 8 - OK":GOTO1640 1600 GOTO1660 1610 PRINT"" 1620 IFB3=134691THENPRINTTAB(6)"[156]PART 9 - OK":GOTO1690 1630 GOTO1660 1640 B3=0:B1=B1+1:GOTO1290 1650 GOTO1290 1660 PRINT"A PROBLEM EXISTS IN THE ROM OF THIS COMPUTER" 1670 FORT=1TO3000:NEXT 1680 GOTO360 1690 PRINT"[153]THE BASIC ROM CHECKS OK" 1700 FORT=1TO2000:NEXT 1710 GOTO360 1720 REM ******** JOYSTICK CHECK ********* 1730 PRINT"[147]":PRINTSPC(93)"[153][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]" 1740 PRINTTAB(10)"***[153] JOYSTICK CHECK [146]***" 1750 PRINTTAB(13)"[153][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 1760 PRINTSPC(128)"[154]PRESS F1 TO TEST PORT # 1" 1770 PRINTSPC(48)"PRESS F3 TO TEST PORT # 2" 1780 PRINTSPC(48)"PRESS F7 TO RETURN" 1790 FORX=12288TO12352STEP2:POKEX,127:NEXT 1800 FORX=12289TO12351STEP2:POKEX,254:NEXT 1810 SP=53248:X=150:Y=180:POKESP+21,1:POKESP+39,2 1820 POKE2040,192:POKESP,X:POKESP+1,Y 1830 IFAA=1THENJS=15-(PEEK(56321)AND15) 1840 IFAA=5THENJS=15-(PEEK(56320)AND15) 1850 IFJS=0THEN2020 1860 IFJS=1THENDX=0:DY=-2:GOTO1940 1870 IFJS=2THENDX=0:DY=2:GOTO1940 1880 IFJS=4THENDX=-2:DY=0:GOTO1940 1890 IFJS=5THENDX=-2:DY=-2:GOTO1940 1900 IFJS=6THENDX=-2:DY=2:GOTO1940 1910 IFJS=8THENDX=2:DY=0:GOTO1940 1920 IFJS=9THENDX=2:DY=-2:GOTO1940 1930 IFJS=10THENDX=2:DY=2:GOTO1940 1940 X=X+DX:Y=Y+DY 1950 IFX>255ANDPEEK(SP+16)=0THENPOKESP+16,1:X=0 1960 IFPEEK(SP+16)=1ANDX<0THENPOKESP+16,0:X=255 1970 IFY>220THENY=220 1980 IFY<50THENY=50 1990 IFX<40ANDPEEK(SP+16)=0THENX=40 2000 IFX>50ANDPEEK(SP+16)=1THENX=50 2010 POKESP,X:POKESP+1,Y 2020 GETA$ 2030 IFA$=CHR$(133)THENAA=1 2040 IFA$=CHR$(134)THENAA=5 2050 IFA$=CHR$(136)THEN970 2060 GOTO1830 2070 REM ******** PADDLE CHECK ********** 2080 PRINT"[147]":PRINTSPC(93)"[156][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]" 2090 PRINTTAB(10)"***[156] PADDLE TEST [146]***" 2100 PRINTTAB(13)"[156][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 2110 PRINTSPC(132)"[159]PRESS F1 TO RETURN" 2120 CC=49152 2130 SYSCC 2140 P1=PEEK(CC+257):P2=PEEK(CC+258) 2150 P3=PEEK(CC+259):P4=PEEK(CC+260) 2160 S1=PEEK(CC+261):S2=PEEK(CC+262) 2170 PRINT"[156] #1 #2 #3 #4" 2180 PRINT"[153] POSITIONS: ";P1;" ";P2;" ";P3;" ";P4 2190 PRINTSPC(43)"FIRE STATUS: ";S1;" ";S2 2200 FORT=1TO1000:NEXT 2210 PRINT"[145][145][145] " 2220 PRINT" " 2230 GETA$:IFA$=CHR$(133)THEN360 2240 GOTO2130 2250 PRINT"[147]":PRINTSPC(93)"[158][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]" 2260 PRINTTAB(10)"***[158] USER RAM TEST [146]***" 2270 PRINTTAB(13)"[158][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]" 2280 PRINTSPC(127)"[154]F1 - USER 38911 BYTES CHECK" 2290 PRINTSPC(87)"[153]F3 [192] DECIMAL DUMP TO SCREEN" 2300 PRINTSPC(87)"[150]F7 [192] RETURN" 2310 GETA$:IFA$=""THEN2310 2320 IFA$=CHR$(133)THEN2360 2330 IFA$=CHR$(134)THEN2430 2340 IFA$=CHR$(136)THEN360 2350 GOTO2310 2360 A=PEEK(40959):B=PEEK(40704) 2370 SYS50176 2380 IFA=PEEK(49919)ANDB=PEEK(49664)THEN2400 2390 PRINT"PROBLEM IN HIGH SIDE OF USER RAM":GOTO2410 2400 PRINT"[156] USER RAM IS OK" 2410 FORT=1TO3000:NEXT 2420 GOTO2250 2430 PRINT"[158] ENTER PAGE # 8-159 ";:INPUTI$ 2440 PRINT"[147]":POKE53281,1:I=VAL(I$):POKE646,6 2450 FORJ=0TO255:PRINTPEEK(I*256+J);" ";:NEXT 2460 FORI=0TO4000:NEXT 2470 POKE53281,0:GOTO2250